#include <iostream>
#include <cstring>
using namespace std;
int W, H; // W-x列, H-y行
constexpr int MAXN = 25;
char pos[MAXN][MAXN];
int r, c;    // 表示当前男人所在位置
int sum = 0; // 表示可以遍历的总数
void solve();
int main()
{
    while (cin >> W >> H && W != 0 && H != 0) {
        sum = 0; // sum 归零
        memset(pos, 0, sizeof pos);
        for (int i = 0; i < H; i++) {
            for (int j = 0; j < W; j++) {
                cin >> pos[i][j];
                if (pos[i][j] == '@') {
                    r = i; c = j;
                }
            }
        }
        solve();
    }
}


int dxdy[][4] = {
    {1, 0, -1, 0},
    {0, 1, 0, -1}
};

void dfs(int x, int y) {
    for (int i = 0; i < 4; i++) {
        int nx = x + dxdy[0][i];
        int ny = y + dxdy[1][i];
        if (pos[nx][ny] == '.') {
            sum++;
            pos[nx][ny] = '#';
            dfs(nx, ny);
        }
    }
}

void solve() {
    dfs(r, c);
    cout << sum + 1 << endl;
}
